hi3516cv200_neo + hi3516av100_neo: V2/V2A modern-kernel firmware targets#2122
Merged
Conversation
…targets Adds two new firmware build targets running Linux 7.0 on the V2 (cv200, ARM926EJ-S) and V2A (av100, Cortex-A7) SoC families, mirroring the existing cv300_neo / av300_neo / cv500_neo / ev300_neo pattern. Bumps the opensdk hash to pick up the V2/V2A blob-symbol shim work that landed in openhisilicon #170 + #171, and exercises the hi3516av100 mainline SoC support that landed in openipc/linux #44 (DT + CRG + higmac ethernet driver). opensdk hash: 7fa06b2 (openhisilicon main tip). What ships: br-ext-chip-hisilicon/configs/hi3516cv200_neo_defconfig: ARM926EJ-S / ARMv5TE soft-float, musleabi toolchain (vendor-compatible binaries), Linux 7.0 from upstream-patches, BR2_GLOBAL_PATCH_DIR = all-patches-neo, vendor osdrv disabled (3.18-only). 8 MB NOR flash target. br-ext-chip-hisilicon/configs/hi3516av100_neo_defconfig: Cortex-A7 / ARMv7 soft-float, musleabi toolchain, Linux 7.0 from upstream-patches, vendor osdrv disabled. 16 MB NOR target. br-ext-chip-hisilicon/board/hi3516cv200/hi3516cv200.neo.config: Seed kernel config — ARCH_HI3516CV200, COMMON_CLK_HI3516CV200, VIC + SP804 timer + PL011 console + hisi_femac ethernet, CMA for openhisilicon MMZ. Pure ARMv5TE. br-ext-chip-hisilicon/board/hi3516av100/hi3516av100.neo.config: Seed kernel config — ARCH_HI3516AV100, COMMON_CLK_HI3516AV100, GIC + arch-timer + PL011 + hisi_higmac (mainline mainline GMAC driver from openipc/linux #44). Regulator + CPU_FREQ + PM_OPP enabled to satisfy modpost (open_pm.ko avs paths reference these; the blob is gated DISABLE_PM=1 by default but residual references remain through the build). br-ext-chip-hisilicon/board/hi35*/neo-post-image.sh: Wraps zImage + appended DTB into uImage for U-Boot bootm. Per-chip DTB filename + load-address baked in. general/package/hisilicon-opensdk/hisilicon-opensdk.mk: Install open_v2_shim.ko and open_v2a_shim.ko under the /lib/modules/$(KVER)/hisilicon/ path on neo builds (gated on OPENIPC_VARIANT=neo so lite remains byte-equivalent to nightly). Verification — both targets pass the QEMU smoke definition-of-done: hi3516cv200_neo (V2, 7.0): [PASS] login prompt [PASS] eth0 has IP (10.0.2.15 via SLIRP DHCP) [PASS] ping 10.0.2.2 (4.218 ms RTT) [PASS] no Oops / panic / BUG / Call Trace hi3516av100_neo (V2A, 7.0): [PASS] login prompt [PASS] eth0 has IP (10.0.2.15 via SLIRP DHCP) [PASS] ping 10.0.2.2 (2.728 ms RTT) [PASS] no Oops / panic / BUG / Call Trace [PASS] hisi-higmac 10090000.ethernet eth0: Link is Up - 100Mbps/Full No-regression on lite targets (rebuilt against this opensdk hash via HISILICON_OPENSDK_OVERRIDE_SRCDIR and diffed vs nightly): hi3516cv200_lite (V2, 4.9): 331/331 rootfs files, 68/68 hisilicon .ko, sets identical hi3516av100_lite (V2A, 4.9): 290/290 rootfs files, 61/61 hisilicon .ko, sets identical The v2[a]_shim modules are gated `#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)` in their source — they're benign no-op shells on 4.9 and the firmware install block doesn't ship them on lite at all (only neo). Known caveats — both neo targets: - struct timer_list.data ABI drift (chnl/viu/vpss vendor blobs) means video pipeline doesn't run yet; init_timer_key resolves but the callbacks won't fire with the correct argument until either a kernel patch restores .data or the blobs are recompiled. Documented in openhisilicon shim sources. Boot + network + serial console work; video does not. - higmac driver (mainline) is bare-minimum — no TSO, no EEE, no AVS, no statistics/ethtool, multicast filter is permissive. Suitable for boot/SSH/web management; production tuning is a follow-up. CI: existing matrix rows are unchanged; this PR doesn't add neo rows yet (cv200_neo + av100_neo qemu smoke can be added in a follow-up once the no-CI-row dance settles). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds two new firmware build targets running Linux 7.0 on the V2 (cv200, ARM926EJ-S) and V2A (av100, Cortex-A7) SoC families, mirroring the existing
cv300_neo/av300_neo/cv500_neo/ev300_neopattern.74d8a65 → 7fa06b2— picks up the V2/V2A blob-symbol shim work from openhisilicon #170 + #171.hisi_higmacethernet driver).QEMU DoD — both targets pass
No-regression on lite targets
Rebuilt against the new opensdk hash via
HISILICON_OPENSDK_OVERRIDE_SRCDIRand diffed against nightly:.kohi3516cv200_lite(4.9)hi3516av100_lite(4.9)The v2[a]_shim modules are gated
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)in their source — benign no-op shells on 4.9 — AND the firmware install block doesn't ship them on lite at all (only on neo via[ "$(OPENIPC_VARIANT)" = "neo" ]gate).Known caveats — both neo targets
struct timer_list.dataABI drift on chnl/viu/vpss vendor blobs means video pipeline doesn't run yet;init_timer_keyresolves but callbacks won't fire with the correct argument until either a kernel patch restores.dataor the blobs are recompiled. Documented in openhisilicon shim sources. Boot + network + serial console work; video does not.CI
No new matrix rows in this PR — neo qemu-smoke rows for cv200/av100 can be added in a follow-up once the existing CI passes for the artifact production paths.
Test plan
🤖 Generated with Claude Code